/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package common;

import ejb.GestoreProvinceLocal;
import it.uninsieme.common.Utility;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.model.SelectItem;
import jpa.Comuni;
import jpa.Province;

/**
 *
 * @author Administrator
 */
@ManagedBean(name = "BeanProvince")
@RequestScoped
public class BeanProvince {

    @EJB
    GestoreProvinceLocal gp;

    private List<SelectItem> listaProvince;
    private List<Province> province;
    private List<SelectItem> listaComuni;
    private List<Comuni> comuni;
    private String selezionata;

    /**
     * Creates a new instance of BeanProvince
     */
    public BeanProvince() {
    }

    public Collection getListaProvince() {
        List<Province> ris = gp.listaProvince();
        listaProvince = new ArrayList<>();
        for (Province p : ris) {
            listaProvince.add(new SelectItem(p.getProvincia(), p.getProvincia()));
        }
        province = ris;
        Utility.ordinaListaLabel(listaProvince);
        for (SelectItem sel : listaProvince) {
            selezionata = sel.getLabel();
            break;
        }
        return Collections.unmodifiableCollection(listaProvince);
    }

    public void setListaProvince(List listaProvince) {
        this.listaProvince = listaProvince;
    }

    public Collection<Province> getProvince() {
        return Collections.unmodifiableCollection(province);
    }

    public void setProvince(LinkedList<Province> province) {
        this.province = province;
    }

    public Collection<Comuni> getComuni() {
        return Collections.unmodifiableCollection(comuni);
    }

    public void setComuni(List<Comuni> comuni) {
        this.comuni = comuni;
    }

    public Collection getListaComuni() {
        Integer id_provincia = null;
        for (Province p : province) {
            if (p.getProvincia().equals(selezionata)) {
                id_provincia = p.getId();
                break;
            }
        }
        List<Comuni> ris = gp.listaComuni(id_provincia);
        listaComuni = new ArrayList<>();
        for (Comuni c : ris) {
            listaComuni.add(new SelectItem(c.getComune(), c.getComune()));
        }
        Utility.ordinaListaLabel(listaComuni);
        comuni = ris;
        return Collections.unmodifiableCollection(listaComuni);
    }

    public void setListaComuni(List<SelectItem> listaComuni) {
        this.listaComuni = listaComuni;
    }

    public String getSelezionata() {
        return selezionata;
    }

    public void setSelezionata(String selezionata) {
        this.selezionata = selezionata;
    }
}
